####
# 
# File: sfxMessage
# 
# (C) Copyright 2019. All rights reserved.
# 
# Author: ShenYongchen (shenyczz@163.com)
# 
###############################################################################
# 
if(SFX_MACRO_MESSAGE_SWITCH)
  message(STATUS "sfx runing - ${CMAKE_CURRENT_LIST_FILE}")
endif()

# message([<mode>] "message to display" ...)
# 
# (无) = 重要消息；
# STATUS = 非重要消息；
# WARNING = CMake 警告, 会继续执行；
# AUTHOR_WARNING = CMake 警告 (dev), 会继续执行；
# SEND_ERROR = CMake 错误, 继续执行，但是会跳过生成的步骤；
# FATAL_ERROR = CMake 错误, 终止所有处理过程；

# message("重要消息")
# message(STATUS "状态消息")
# message(WARNING "CMake Warning, continue processing. -- 警告消息, 会继续执行")
# message(AUTHOR_WARNING "CMake Warning (dev), continue processing. -- 权威警告消息, 会继续执行")
# message(SEND_ERROR "CMake Error, continue processing, but skip generation. -- 错误消息, 继续执行，但是会跳过生成的步骤")
# message(FATAL_ERROR "CMake Error, stop processing and generation. -- 致命错误消息, 终止所有处理过程")
# 


# message(STATUS "----------------------------------------------------MESSAGE BEG")
# 
# PROJECT_xxx
# 
# PROJECT_NAME              -- 工程名称 => SFX
# PROJECT_SOURCE_DIR        -- 工程源文件目录 => d:/sfxCode/cm/cm_common
# PROJECT_BINARY_DIR        -- 工程二进制目录 => d:/sfxCode/cm/cm_common/build
# PROJECT_DESCRIPTION       -- 工程描述
# PROJECT_HOMEPAGE_URL      -- 工程主页
# PROJECT_LABEL             -- 工程标注
# PROJECT_VERSION           -- 工程版本
# PROJECT_VERSION_MAJOR     -- 工程版本-主版本号
# PROJECT_VERSION_MINOR     -- 工程版本-次版本号
# PROJECT_VERSION_PATCH     -- 工程版本-修订版本号
# PROJECT_VERSION_TWEAK     -- 工程版本-调整版本号
# 
# message(STATUS "PROJECT_NAME =  " ${PROJECT_NAME})
# message(STATUS "PROJECT_SOURCE_DIR = " ${PROJECT_SOURCE_DIR})
# message(STATUS "PROJECT_BINARY_DIR = " ${PROJECT_BINARY_DIR})
# message(STATUS)

# 
# CMAKE_CXX_xxx
# 
# CMAKE_CXX_COMPILER_ID         -- CXX 编译器ID => MSVC, ...
# CMAKE_CXX_COMPILE_FEATURES    -- CXX 编译器特征 => cxx_std_98cxx_template_template_parameterscxx_std_11cxx_alias_templatescxx_alignascxx_alignofcxx_attributescxx_auto_typecxx_constexprcxx_decltypecxx_decltype_incomplete_return_typescxx_default_function_template_argscxx_defaulted_functionscxx_defaulted_move_initializerscxx_delegating_constructorscxx_deleted_functionscxx_enum_forward_declarationscxx_explicit_conversionscxx_extended_friend_declarationscxx_extern_templatescxx_finalcxx_func_identifiercxx_generalized_initializerscxx_inheriting_constructorscxx_inline_namespacescxx_lambdascxx_local_type_template_argscxx_long_long_typecxx_noexceptcxx_nonstatic_member_initcxx_nullptrcxx_overridecxx_range_forcxx_raw_string_literalscxx_reference_qualified_functionscxx_right_angle_bracketscxx_rvalue_referencescxx_sizeof_membercxx_static_assertcxx_strong_enumscxx_thread_localcxx_trailing_return_typescxx_unicode_literalscxx_uniform_initializationcxx_unrestricted_unionscxx_user_literalscxx_variadic_macroscxx_variadic_templatescxx_std_14cxx_aggregate_default_initializerscxx_attribute_deprecatedcxx_binary_literalscxx_contextual_conversionscxx_decltype_autocxx_digit_separatorscxx_generic_lambdascxx_lambda_init_capturescxx_relaxed_constexprcxx_return_type_deductioncxx_variable_templatescxx_std_17cxx_std_20
# CMAKE_CXX_EXTENSIONS          -- CXX 扩展
# CMAKE_CXX_KNOWN_FEATURES      -- CXX 已知特征
# CMAKE_CXX_STANDARD            -- CXX 标准
# CMAKE_CXX_STANDARD_REQUIRED   -- CXX 标准需求
# 
# message(STATUS "CMAKE_CXX_COMPILER_ID = " ${CMAKE_CXX_COMPILER_ID})
# message(STATUS)

# 
# CMAKE_MODULE_xxx
# 
# CMAKE_MODULE_PATH                 -- 模块路径 => d:/sfxCode/cm/cm_common/cmake
# CMAKE_MODULE_LINKER_FLAGS         -- 模块链接标志 => /machine:x64
# CMAKE_MODULE_LINKER_FLAGS_INIT    -- 模块链接标志初始值 => /machine:x64
# 
# 需要在主 CMakeLists.txt 中设置， 如下命令
# set(__cmake_dir__ "${PROJECT_SOURCE_DIR}/cmake")
# list(INSERT CMAKE_MODULE_PATH 0 "${__cmake_dir__}")
# 
# message(STATUS "CMAKE_MODULE_PATH = " ${CMAKE_MODULE_PATH})
# message(STATUS "CMAKE_MODULE_LINKER_FLAGS = " ${CMAKE_MODULE_LINKER_FLAGS})
# message(STATUS "CMAKE_MODULE_LINKER_FLAGS_INIT = " ${CMAKE_MODULE_LINKER_FLAGS_INIT})
# message(STATUS)

# 
# CMAKE_CURRENT_XXX
# 
# CMAKE_CURRENT_SOURCE_DIR  -- 当前源文件目录 => d:/sfxCode/cm/cm_common
# CMAKE_CURRENT_BINARY_DIR  -- 当前二进制目录 => d:/sfxCode/cm/cm_common/build
# CMAKE_CURRENT_LIST_DIR    -- 当前列表目录 => d:/sfxCode/cm/cm_common/cmake
# CMAKE_CURRENT_LIST_FILE   -- 当前列表文件 => d:/sfxCode/cm/cm_common/cmake/sfxMessage.cmake
# CMAKE_CURRENT_LIST_LINE   -- 当前列表行号 => 72
# message(STATUS "CMAKE_CURRENT_SOURCE_DIR = " ${CMAKE_CURRENT_SOURCE_DIR})
# message(STATUS "CMAKE_CURRENT_BINARY_DIR = " ${CMAKE_CURRENT_BINARY_DIR})
# message(STATUS "CMAKE_CURRENT_LIST_DIR = " ${CMAKE_CURRENT_LIST_DIR})
# message(STATUS "CMAKE_CURRENT_LIST_FILE = " ${CMAKE_CURRENT_LIST_FILE})
# message(STATUS "CMAKE_CURRENT_LIST_LINE = " ${CMAKE_CURRENT_LIST_LINE})
# message(STATUS)

# 
# CMAKE_INSTALL_xxx
# 
# CMAKE_INSTALL_BINDIR                          -- 安装.二进制目录 => bin
# CMAKE_INSTALL_LIBDIR                          -- 安装.库文件目录 => lib
# CMAKE_INSTALL_INCLUDEDIR                      -- 安装.包含文件目录 => include
# CMAKE_INSTALL_DATADIR                         -- 安装.数据文件目录 => share
# CMAKE_INSTALL_DATAROOTDIR                     -- 安装.数据文件根目录 => share
# CMAKE_INSTALL_PREFIX                          -- 安装.前缀 => c:/Program Files (x86)/SFX
# CMAKE_INSTALL_DEFAULT_COMPONENT_NAME          -- 安装.默认组件名称 => Unspecified
# CMAKE_INSTALL_MESSAGE                         -- 安装.信息
# CMAKE_INSTALL_NAME_DIR                        -- 安装.名称目录
# CMAKE_INSTALL_RPATH                           -- 安装.?
# CMAKE_INSTALL_RPATH_USE_LINK_PATH             -- 安装.?
# CMAKE_INSTALL_REMOVE_ENVIRONMENT_RPATH        -- 安装.?
# CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS   -- 安装.?
# CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT   -- 安装.?
# 
# 需要在 include(sfxDirectory) 命令后得到
# 
# message(STATUS "CMAKE_INSTALL_BINDIR = " ${CMAKE_INSTALL_BINDIR})
# message(STATUS "CMAKE_INSTALL_LIBDIR = " ${CMAKE_INSTALL_LIBDIR})
# message(STATUS "CMAKE_INSTALL_INCLUDEDIR = " ${CMAKE_INSTALL_INCLUDEDIR})
# message(STATUS "CMAKE_INSTALL_DATADIR = " ${CMAKE_INSTALL_DATADIR})
# message(STATUS "CMAKE_INSTALL_DATAROOTDIR = " ${CMAKE_INSTALL_DATAROOTDIR})
# message(STATUS "CMAKE_INSTALL_PREFIX = " ${CMAKE_INSTALL_PREFIX})
# message(STATUS "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME = " ${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME})
# message(STATUS)

# 
# CMAKE_INCLUDE_CURRENT_DIR
# 
# CMAKE_INCLUDE_PATH
# CMAKE_INCLUDE_CURRENT_DIR
# CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE
# CMAKE_INCLUDE_DIRECTORIES_BEFORE
# CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE
# 
# message(STATUS "CMAKE_INCLUDE_PATH = " ${CMAKE_INCLUDE_PATH})
# message(STATUS)


# 
# 
# 
# message(STATUS "CMAKE_RUNTIME_OUTPUT_DIRECTORY = " ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
# message(STATUS "CMAKE_LIBRARY_OUTPUT_DIRECTORY = " ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
# message(STATUS "CMAKE_ARCHIVE_OUTPUT_DIRECTORY = " ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY})
# message(STATUS)

# 
# SFX_xxx - ?
# 
# SFX_PROJECT_ROOT_DIR      -- 项目工程根目录 => ${PROJECT_SOURCE_DIR}
# SFX_PROJECT_BINARY_DIR    -- 二进制文件目录 => ${PROJECT_BINARY_DIR}
# SFX_PROJECT_SOURCE_DIR    -- 源代码文件目录 => ${SFX_PROJECT_ROOT_DIR}/Source
# 
# message(STATUS "SFX_PROJECT_ROOT_DIR = " ${SFX_PROJECT_ROOT_DIR})
# message(STATUS "SFX_PROJECT_BINARY_DIR = " ${SFX_PROJECT_BINARY_DIR})
# message(STATUS "SFX_PROJECT_SOURCE_DIR = " ${SFX_PROJECT_SOURCE_DIR})
# message(STATUS)

# message(STATUS "----------------------------------------------------MESSAGE END")
